import '../models/period_model.dart';


abstract class BaseRepository<T> {
  Future<T?> getById(int id);
  Future<List<T>> getAll();
  Future<int> save(T entity);
  Future<bool> update(T entity);
  Future<bool> delete(int id);
}


abstract class UserProfileRepository extends BaseRepository<UserProfile> {
  Future<UserProfile?> getFirstProfile();
}


abstract class PeriodRepository extends BaseRepository<PeriodModel> {
  Future<List<PeriodModel>> getByDateRange(DateTime startDate, DateTime endDate);
  Future<PeriodModel?> getByDate(DateTime date);
  Future<List<PeriodModel>> getCurrentMonthRecords();
}